import { TrainOrder } from './TrainOrderModel';
import { ExamineApprove } from '/@/api/travelItinerary/model/ExamineApproveModel';

export interface TrainOrderStatisticsModel {
  id: number;
  /**
   * 订单ID
   */
  orderId: string;

  /**
   * 公司ID
   */
  cid: string;

  /**
   * 订单类型
   */
  travelType: string;

  /**
   * 创建时间
   */
  createTime: string;

  /**
   * 预订成功时间，出票时间
   */
  bookTime: string;

  /**
   * 支付时间
   */
  payTime: string;

  /**
   * 预订人
   */
  bookerName: string;

  /**
   * 订单状态，0：原始订单，1：已出票，2：出票失败，3：无效订单，4：确认改签中（临时状态，最后会变成已出票或出票失败）
   */
  status: string;

  /**
   * 支付状态 0：未支付，1已支付
   */
  payStatus: string;

  /**
   * 订单来源
   */
  orderSource: string;

  /**
   * 订单总额
   */
  totalMoney: string;

  /**
   * 12306的订单号
   */
  idIn12306: string;

  /**
   * 支付方式 公司支付或者个人支付
   */
  payWay: string;

  /**
   * 支付方式
   */
  paymentway: string;

  /**
   * 外部出差申请单号
   */
  voucherId: string;

  /**
   * 订单总票价(不包含服务费)
   */
  ticketTotalMoney: number;

  /**
   * 业务经理，多个用英文都好分隔
   */
  busiManage: string;

  /**
   * 出发日期
   */
  fromDate: string;

  /**
   * 出发时间
   */
  fromTime: string;

  /**
   * 到达日期
   */
  arriveDate: string;

  /**
   * 到达时间
   */
  arriveTime: string;

  /**
   * 出发地
   */
  fromStation: string;

  /**
   * 到达地
   */
  arriveStation: string;

  /**
   * 车次
   */
  trainCode: string;

  /**
   * 车次类型
   */
  trainType: string;

  /**
   * 实际退款金额
   */
  refundAmount: string;

  /**
   * 退票手续费
   */
  refundCharge: number;

  /**
   * 退票实退的金额: 和refundmoney区别在于 refundticketmoney会多一个高改低的情况，退还的差额部分会在对应的改期单上体现退还的部分
   */
  refundTicketmoney: number;

  /**
   * 席别
   */
  seatType: string;

  /**
   * 席别描述
   */
  seatTypeDes: string;

  /**
   * 车厢
   */
  carriage: string;

  /**
   * 座位号
   */
  seatNo: string;

  /**
   * 票价
   */
  ticketMoney: number;

  /**
   * 服务费
   */
  charge: number;

  /**
   * 退款状态，0：未退，1已退
   */
  quitStatus: number;

  /**
   * 退票实退金额，改签有差额实退金额
   */
  refundMoney: number;

  /**
   * 改签 退票费率，如0,0.05,0.1.0.2
   */
  refundRate: number;

  /**
   * 退票完成时间
   */
  refundDate: string;

  /**
   * 改签票款异动类型:1:表示新票款高于原票款，将原单退掉，重新支付新单票款,2:表示新票款与原票款相等，无需支付或退款,3:表示新票款低于原票款，退还差额部分
   */
  changeType: number;

  /**
   * 员工编号
   */
  accountNo: string;

  /**
   * 员工姓名
   */
  empName: string;

  trainOrder: TrainOrder;

  examineApprove: ExamineApprove;
}

export interface TrainOrderStatisticsParams {
  orderNo: string;
  accountNo: string;
}
